package com.gec.dao;

import com.gec.domain.Reim;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/*
 *  Type: Interface
 *  Author: DawnFz.com
 *  Date: 2022/10/26 9:30
 *  Project: HotelSSM
 *  Version: 1.0
 *  Describe: [ReimDao接口]
 */
public interface ReimDao {

    int updateAssigneeAndTask(
            @Param("insId") String insId,
            @Param("taskId") String taskId,
            @Param("assignee") String assignee
    );

    int addReim(Reim reim);

    //查看待我发起的任务流程
    List<Reim> queryInitiate(String initiator);

    //查看待我审批的任务流程
    List<Reim> queryWaitMyApprove(String assigneeId);

    //查看我已审批的任务流程
    List<Reim> queryMyApproved(String assigneeId);

    //查询我的任务详情
    Reim queryMyTaskByTaskId(@Param("taskId") String taskId);

    //更新状态
    int updateStatusByInstance(@Param("proInsID") String proInsID, @Param("status") String status);

    //清空任务Id和办理人
    int clearTaskAndAssignee(@Param("proInsID") String proInsID);

    //通过Assignee查找历史流程ID
    List<String> queryHistoricProcessInstanceIdByAssignee(@Param("assignee") String assignee);

    //通过ProcessInstanceIds查找我已审批过的Leave记录
    List<Reim> queryMyApprovedByProcessInstanceIds(@Param("processInstanceIds") String processInstanceIds);

    //更新审批记录到t_hi_reim表中
    int addRecordToHistoricReim(@Param("processInstanceId") String processInstanceId, @Param("assignee") String assignee);
}
